home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-06-15 | 2.1 KB | 98 lines | [TEXT/MPS ] |
- MODULE DemoTest;
- (* Copyright: © 1990 by Keith Nemitz, all rights reserved. *)
-
- FROM SYSTEM IMPORT ADDRESS,ADR;
-
- FROM Strings IMPORT Length,MakePascalString,MakeModulaString;
-
- FROM MacTypes IMPORT Debugger,debugstr,OSErr,Str255,Str31;
- FROM FileManager IMPORT HGetVol;
- FROM ResourceManager IMPORT ResError;
- FROM QuickDraw IMPORT Random;
-
- FROM InOut IMPORT WriteString,WriteLongInt,WriteLongCard,WriteLn;
- FROM IntEnv IMPORT Exit;
-
- FROM LocLib IMPORT CopyStr;
- FROM StackFiles IMPORT StackFile,NewStackFile,GetStackFile,CloseStackFile,
- GetDataStack,SaveStackFile;
- FROM DataStacks IMPORT AddCard,GetCardByID,DataStack,GetCardByName,
- RemoveCard,InNameOrderDo,CountCards,GetCardName,GetCardIndx,
- GetCardID,SetCardName;
-
- TYPE
- ong = RECORD
- s :ARRAY [0..23] OF CHAR;
- n :LONGINT;
- END;
-
- VAR
- vRef,err :INTEGER;
- dirID :LONGINT;
- sf :StackFile;
- ds :DataStack;
- str,sss :Str255;
- i,j,seed :CARDINAL;
- xOng :ong;
-
-
-
- PROCEDURE RandomRange(m,n :CARDINAL):CARDINAL;
- BEGIN
- RETURN (VAL(CARDINAL,Random()) MOD (n-m+1)) + m;
- END RandomRange;
-
- PROCEDURE MakeRandomName(VAR s:ARRAY OF CHAR);
- VAR
- i,n,x :CARDINAL;
- BEGIN
- n := RandomRange(2,27);
- FOR i := 1 TO n DO
- x := RandomRange(ORD(' '),ORD('z'));
- s[i] := CHR(x);
- END;
- s[0] := CHR(n);
- END MakeRandomName;
-
-
- BEGIN
- err := ResError();
- str := "";
- IF HGetVol(NIL,vRef,dirID) # 0 THEN Exit(1); END;
-
- sf := NewStackFile('MainTest',vRef,dirID,100,1036,207);
- IF VAL(ADDRESS,sf) = NIL THEN
- WriteString("failed to open stack"); WriteLn;
- Exit(1);
- END;
- ds := GetDataStack(sf);
-
-
- FOR i := 1 TO 5000 DO
- MakeRandomName(str); (* pascal string *)
- IF AddCard(ds,ADR(xOng),str) = 0 THEN
- WriteString('Did not add card:'); WriteLongCard(i,7); WriteLn;
- Exit(1);
- END;
- END;
-
- FOR i := 1 TO 1000 DO
- RemoveCard(ds,RandomRange(1,CountCards(ds)),0);
- END;
-
- FOR i := 1 TO CountCards(ds) DO
- GetCardName(ds,0,GetCardID(ds,i,""),str);
- j := GetCardIndx(ds,GetCardID(ds,0,""),str);
- IF j = 0 THEN
- WriteString('Bad Lookup');
- MakeModulaString(str,sss);
- WriteString(sss);
- WriteLongInt(VAL(LONGINT,i),8); WriteLn;
- Exit(1);
- END;
- END;
-
- (* SaveStackFile(sf); *)
- CloseStackFile(sf);
-
- END DemoTest.